#include<stdio.h>
#include<stdlib.h>

int main()
{
    /*
        数组的本质：
           1.连续的内存空间
           2.相同的数据类型
    */

   
       /*数组的定义*/
       /*整数数组*/
    int num[5];

   /*数组的内存*/
    int length = sizeof(num);
    printf("length is %d\n",length);

    /*字符数组*/
    char array[30];
    /*数组的内存*/
    length = sizeof(array);
    printf("length is %d\n",length);


    /*数组的第一个元素的索引的0，所以最后一个元素的索引是大小减1*/
    int scores[20];

 
    /*数组的赋值*/
    scores[0] = 93;
    scores[1] = 90;
    scores[19] = 92;

      /*取值*/
    printf("nums[%d] = %d\n", scores[0]);



    /*循环赋值*/
for (int idx =0;idx<20;idx++)
{
    scores[idx]=rand()%10+90;
}

    /*循环取值*/
    for (int idx =0; idx < 20; idx++)
    {
        printf("scores[%d] = %d\t",idx,scores[idx]);

      if ((idx + 1) %4 == 0)
    {
        printf("\n");
    }
}  

    /*取出最低分和最高分 分别是谁？*/
    /*哪个分数次数出现最多?*/
    
    /*找最大值和最小值*/
    int max = scores[0];
    int min = scores[0];

    for (int idx = 0; idx < 20; idx++)
    {
        /*取最大值*/
        if (scores[idx] > max)
        {
            max = scores[idx];
        }
        /*取最小值*/
        if (scores[idx] < min)
        {
            min = scores[idx];
        }
    }
    printf("最大值为%d\t最小值为%d\n",max,min);

    /*统计出现个数最多的*/
    int times[20] = {};
    int Num_Max = 0;
    int maxValue = -1;

    /*计数*/
    for(int idx = 0; idx < 20; idx++)
    {
        times[scores[idx]-90 ]++;
    }
    for (int idx = 0; idx < 20; idx++)
    {
        printf("%d\t",times[idx]);
        if((idx + 1) % 4 == 0)
        {
            printf("\n");
        }
    }

    /*寻找出现最多的数及次数*/
    for (int idx = 0; idx < 20; idx++)
    {
        if((times[idx] + 90) > Num_Max)
        {
            maxValue = times[idx];
            Num_Max  = idx + 90;
        }
    }
    printf("出现次数最多的数为%d,\t出现次数为%d\n",Num_Max,maxValue);
    return 0;
}
